#!/bin/bash - 

# 定义变量password
password=''

# 显示提示输入密码的信息到标准输出
echo -n "Enter password: "

# 使用while循环隐式地从标准输入每次读取一个字符，且反斜杠不做转义字符处理
#+然后将读取的字符赋值给变量char
while IFS= read -r -s -n1 char
do
  # 如果读入的字符为空（直接输出的回车），则退出while循环
  if [ -z $char ]
  then
    echo
    break
  fi
  
  # 如果键入的是退格键（backspace）或删除键（delete），则从变量password中移除最后一个字符
#+并向左删除一个*
#+否则，将变量char的值累加赋值给变量password
  if [[ $char == $'\x08' ||  $char == $'\x7f' ]]
  then
    # 从变量password中移除最后一个字符
[[ -n $password ]] && password=${password:0:${#password}-1}
# 并向左删除一个*
printf '\b \b'
  else
    # 将变量char的值累加赋值给变量password
    password+=$char
    # 打印一个星号*.
    printf '*'
  fi

done

echo "Password is: $password"